﻿// Bing Maps ASP.NEt Control is a community project available under the Microsoft Public License (Ms-PL)
// Code is provided as is and with no warrenty – Use at your own risk
// View the project and the latest code at http://BingMapsASP.codeplex.com

using System;

namespace Microsoft.Live.ServerControls.VE
{
    public sealed class MapEventArgs : EventArgs
    {
        #region Public Instance Property(s)

        /// <summary>
        /// A String object containing the error message, if any.
        /// </summary>
        public string error { get; set; } 
 
        /// <summary>
        /// The current map zoom level.
        /// </summary>
        public int zoomLevel { get; set; }  
 
        /// <summary>
        /// The current map style as a String. Valid String results are a, r, h, and o.
        /// </summary>
        public string mapStyle { get; set; }
 
        /// <summary>
        /// If the map style is set to bird's eye (oblique), the unique identifier of the current bird's eye scene.
        /// </summary>
        public string birdseyeSceneID { get; set; }
 
        /// <summary>
        /// If the map style is set to bird's eye (oblique), the orientation of the current bird's eye scene.
        /// </summary>
        public string birdseyeSceneOrientation { get; set; }
 
        /// <summary>
        /// A boolean representing whether the left mouse button has been clicked.
        /// </summary>
        public bool leftMouseButton { get; set; }
 
        /// <summary>
        /// A boolean representing whether the right mouse button has been clicked.
        /// </summary>
        public bool rightMouseButton { get; set; }
 
        /// <summary>
        /// A boolean representing whether the middle mouse button (or mouse wheel) has been clicked.
        /// </summary>
        public bool middleMouseButton { get; set; }
 
        /// <summary>
        /// The number of units that the mouse wheel has changed.
        /// </summary>
        public int mouseWheelChange { get; set; }

        /// <summary>
        /// The x coordinate of the mouse cursor relative to the browser window.
        /// </summary>
        public int clientX { get; set; }
 
        /// <summary>
        /// The y coordinate of the mouse cursor relative to the browser window.
        /// </summary>
        public int clientY { get; set; }
 
        /// <summary>
        /// The x coordinate of the mouse cursor relative to the screen.
        /// </summary>
        public int screenX { get; set; }
  
        /// <summary>
        /// The y coordinate of the mouse cursor relative to the screen.
        /// </summary>
        public int screenY { get; set; }


        /// <summary>
        /// The x coordinate of the map relative to the screen.
        /// </summary>
        public int mapX { get; set; }
  

        /// <summary>
        /// The y coordinate of the map relative to the screen.
        /// </summary>
        public int mapY { get; set; }
  
        /// <summary>
        /// The latlong coordinates of the clicked location.
        /// </summary>
        public LatLongWithAltitude latLong { get; set; }
 
        /// <summary>
        /// The key code of the key that has been pressed.
        /// </summary>
        public string keyCode { get; set; }
 
        /// <summary>
        /// A boolean representing whether the ALT key was held when the key was pressed.
        /// </summary>
        public bool altKey { get; set; }

        /// <summary>
        /// A boolean representing whether the CTRL key was held when the key was pressed.
        /// </summary>
        public bool ctrlKey { get; set; }
 
        /// <summary>
        /// A boolean representing whether the shift key was held when the key was pressed.
        /// </summary>
        public bool shiftKey { get; set; }
  
        /// <summary>
        /// A string representing the type of event that occurred.
        /// </summary>
        public string eventName { get; set; }
 
        /// <summary>
        /// The ID of the object associated with the event, usually a VEShape Class object or the base map.
        /// </summary>
        public string elementID { get; set; }

        #endregion
    }
}
